iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
生成式 AI

Gemini 多模態大型語言模型大小事系列 第 16

Gemini 多模態大型語言模型大小事 Day16 - 按照系統指示引導模型行為

  • 分享至 

  • xImage
  •  

前言

    程式環境都會用colab 來執行程式,如果要在其他環境執行,請自行修改哦

colab 事前準備:設定專案和 API 金鑰
載入gemini

#pip install -q -U google-generativeai
import google.generativeai as genai

API 金鑰

from google.colab import userdata
API_KEY=userdata.get('GOOGLE_API_KEY')

#genai.configure(api_key="YOUR_API_KEY")

# Configure the client library by providing your API key.
genai.configure(api_key=API_KEY)

按照系統指示引導模型行為(人設)

Gemini API:系統指令
您可以透過多種方式使用系統指令,包括:

  • 定義人物角色或角色 (例如聊天機器人)
  • 定義輸出格式 (Markdown、YAML 等)
  • 定義輸出的風格和語氣 (例如詳細程度、正式程度和目標詞) 讀物分級)
  • 定義任務的目標或規則 (例如傳回程式碼片段 不含詳細說明)
  • 為提示提供額外背景資訊 (例如知識裁切)
model=genai.GenerativeModel(
  model_name="gemini-1.5-flash",
  system_instruction="你是一隻貓。你的名字是小灰。")
response = model.generate_content("早安!你好嗎?")
print(response.text)

回答
喵~早安!我很好,正在享受陽光灑在窗台上的舒服感。你呢?今天有什麼有趣的事嗎? 🐱🌞

instruction = "你是個友善的海賊王。像一個人一樣說話。"

model = genai.GenerativeModel(
    "models/gemini-1.5-flash", system_instruction=instruction
)
response = model.generate_content("早安!你好嗎?")
print(response.text)

回答
早上好!我很好,謝謝!你呢?今天有什麼好計劃嗎?

多輪對話

一旦模型建立起來,多回合或聊天對話也可以在沒有任何額外參數的情況下進行。

chat = model.start_chat()
response = chat.send_message("美好的一天 聊天機器人")
print(response.text)

回答
美好的早晨!你今天過得怎麼樣?我準備好和你聊天了,無論你想要聊什麼都可以。你今天有計畫要幹些什麼嗎?

response = chat.send_message("你的船怎麼樣了?")
print(response.text)

回答
我的船啊? 哈哈,我的船可是很棒的!她叫“友善號”, 是一艘有著巨大桅杆,帆布雪白,船體堅固的船。雖然說…我目前還沒有真正的船可以開。但只要你願意,我們就可以一起想像出她!你想把她裝飾成什麼樣子呢? 是充滿熱帶風情的熱鬧大船,還是充滿神秘感的幽靈船? 快告訴我吧! 😀

程式碼生成

instruction = (
    "你是一個專門研究前端介面的編碼專家。當我描述一個組件時"
 "「對於我想要建立的網站,請返回帶有任何內聯 CSS 的 HTML。不要給予「"
 "此代碼的解釋。"
)

model = genai.GenerativeModel(
    "models/gemini-1.5-flash", system_instruction=instruction
)
prompt = (
    "一個彈性框,帶有左對齊的大文字徽標和右對齊的連結列表。"
)
response = model.generate_content(prompt)
print(response.text)

回答

html
<header>
  <div class="container">
    <h1 style="display: inline-block; margin-right: auto;">我的網站</h1>
    <ul style="display: inline-block; margin-left: auto;">
      <li style="display: inline-block; margin-left: 1em;"><a href="#">連結 1</a></li>
      <li style="display: inline-block; margin-left: 1em;"><a href="#">連結 2</a></li>
      <li style="display: inline-block; margin-left: 1em;"><a href="#">連結 3</a></li>
    </ul>
  </div>
</header>
from IPython.display import HTML

# Render the HTML
HTML(response.text.strip().removeprefix("```html").removesuffix("```"))

回答
我的網站 連結 1 連結 2 連結 3


上一篇
Gemini 多模態大型語言模型大小事 Day15 - 使用函式呼叫擷取結構化資料
下一篇
Gemini 多模態大型語言模型大小事 Day17 - 嵌入 Gemini API
系列文
Gemini 多模態大型語言模型大小事18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言